perm filename TAPE.SAI[PIC,HE] blob
sn#419570 filedate 1977-09-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "FOO"
C00004 00003 PROCEDURE TAPEOP(INTEGER CHNSTRING STR)
C00005 00004 INTEGER TCHN,C
C00006 ENDMK
C⊗;
BEGIN "FOO"
REQUIRE "<QUAM>BIGLIB.HDR" SOURCE!FILE;
DEFINE SPR="256",WPR=128;
PROCEDURE BUFCVT(INTEGER ARRAY A;INTEGER N);
BEGIN INTEGER I,WD,B0,B1,B2,B3;
POINTER PT;
N←N-1;
FOR I←0 STEP 1 UNTIL N DO
BEGIN WD←A[I];
PT←POINT(8,WD,-1);
B0←ILDB(PT);B1←ILDB(PT);B2←ILDB(PT);B3←ILDB(PT);
A[I]←(((((B1 LSH 8) LOR B0) LSH 10) LOR B3) LSH 8) LOR B2;
END;
END;
PROCEDURE OPTRRD(INTEGER TCHN;STRING FILE);
BEGIN
INTEGER!ARRAY LBUF[0:WPR];
INTEGER EOF,DCHN;
DCHN←OPENFILE(FILE,"W");
SETINPUT(TCHN,0,0,EOF);
ARRYIN(TCHN,LBUF[0],17);
ARRYIN(TCHN,LBUF[32],76);
! BUFCVT(LBUF,128);
ARRYOUT(DCHN,LBUF[0],128);
WHILE NOT EOF DO
BEGIN
ARRYIN(TCHN,LBUF[0],WPR);
! BUFCVT(LBUF,WPR);
ARRYOUT(DCHN,LBUF[0],WPR);
END;
RELEASE(DCHN);
END;
PROCEDURE TAPEOP(INTEGER CHN;STRING STR);
BEGIN INTEGER TC,TN,I;
TC←LOP(STR);
TN←INTSCAN(STR,0) MAX 1;
FOR I←1 STEP 1 UNTIL TN DO MTAPE(CHN,TC);
IF TC="B" THEN BEGIN MTAPE(CHN,"B");MTAPE(CHN,"A");END;
MTAPE(CHN,0);
END;
INTEGER TCHN,C;
STRING STR;
TCHN←OPENFILE("MTA"&STRIN("MAG TAPE UNIT#")&":","R");
SDSTS(TCHN,GDSTS(TCHN,0) LOR '041000);
WHILE TRUE DO
BEGIN STR←STRIN(">");
C←LOP(STR);
CASE C OF
BEGIN ["T"] TAPEOP(TCHN,STR);
["R"] OPTRRD(TCHN,STR);
['177] BEGIN END
END;
END;
END;